// JavaScript Document
function print_grid(){//Funcion que imprime el grid
	var lastsel;
	$("#list").jqGrid({
		//Direccion donde se imprime el grid
		url:'inventario/backend.php?action=grid',
		//Tipo de datos del grid 
		datatype: "json", 
		//Columnas que contiene el Grid aunque no se muestren todas
		colNames:['Id','Código Barras','Producto','Proveedor','Stock Cajas','Uds x Caja','Cajas x Palet','Palets Stock','trazabilidad'],
		//Nombres internos de las columnas y sus caracteristicas 
		colModel:[ 
			{name:'id_producto',index:'id_producto', width:30, align:"center",editable:false}, 
			{name:'ean',index:'ean', width:60, align:"center",editable:false},
			{name:'nombre',index:'nombre', width:205, align:"center",editable:false},
			{name:'proveedor',index:'proveedor', width:60, align:"center",editable:false},
			{name:'unidades',index:'unidades', width:30, align:"center",editable:true},
			{name:'udsxcaja',index:'udsxcaja', width:30, align:"center",editable:false},
			{name:'cajasxpalets',index:'cajasxpalets', width:30, align:"center",editable:false,search:false},
			{name:'unidades_palet',index:'unidades_palet', width:30, align:"center",editable:false,search:false},
			{name:'trazabilidad',index:'trazabilidad', width:30, align:"center",editable:false,hidden:true}
		], 
		//Numero de filas que muestra el grid
		rowNum:99999, 
		//Altura del jqGrid
		height:280,
		//Anchura del jqGrid
		width:780,
		//Paginacion
		pager: '#pager', 
		//Columna por la que se va a ordenar la primera vez
		sortname: 'id_producto', 
		autowidth: false,
		//Muestra la cantidad de datos que contiene y las que se estan mostrando
		viewrecords: true, 
		//Metodo de ordenacion
		sortorder: "asc", 
		//Titulo del jqGrid
		caption:"Gesti&oacute;n de Inventario",
		subGrid : false,
		  //Direccion donde se encuentra los datos de subgrid
		 subGridUrl: 'inventario/subgrid.php?q=2', 
		 //Nombres de las columnas del subgrid
		 subGridModel: [{ name : ['Id','Nº Lote','Cantidad','Fecha Caducidad','Distribuidor'], width : [55,85,80,80,80] } ],
		 //Oculta los botones de paginacion
		pgbuttons:false,
		pginput:false,
		onSelectRow: function(id){ 
			if(id && id!==lastsel){ 
				jQuery('#list').jqGrid('restoreRow',lastsel); 
				jQuery('#list').jqGrid('editRow',id,true); 
				lastsel=id; 
			} 
		}, 
		 //Modifica el producto cuando cambias la cantidad y pierde el foco
		 afterSaveCell : function(rowid,cellname,value,iRow,iCol) { 

		 	modificarFila(value);
          },
		
		
		cellEdit : true,
		cellsubmit : 'remote',
		cellurl : 'inventario/backend.php',
		navigator: true, 
		
	}); 
	//Desactiva los botones por defecto del jqGrid
	$("#list").jqGrid('navGrid','#pager',{pdf:false,add:false,edit:false,del:false,search:false,refresh:false}); 
	//Muestra los botones personalizados
	//Boton de exportar a excel
	$("#list").jqGrid('navButtonAdd','#pager',{
    caption:'Excel  ',
    title:'exportar',
    buttonicon:'ui-icon-newwin',
    position:'last',
    onClickButton:function (){
      exportExcel($("#list"));
    }
	
  });
  	//Boton de exportar a PDF
  	$("#list").jqGrid('navButtonAdd','#pager',{
    caption:'PDF',
    title:'exportar  ',
    buttonicon:'ui-icon-newwin',
    position:'last',
    onClickButton:function (){
      exportPDF($("#list"),'0');//El 0 indica que el pdf lo genera sin los lotes de cada producto
    }
	
  });
  	//Boton de exportar a pdf con los EAN
	$("#list").jqGrid('navButtonAdd','#pager',{
    caption:'PDF con lotes  ',
    title:'exportar',
    buttonicon:'ui-icon-newwin',
    position:'last',
    onClickButton:function (){
      exportPDF($("#list"),'1');//El 1 indica que el pdf lo genera con los lotes de cada producto
    }
	
  });
  	//Boton de consulta de lotes 
  $("#list").jqGrid('navButtonAdd','#pager',{
    caption:'Consulta Lotes',
    title:'Consulta Lotes',
    buttonicon:'ui-icon-circle-zoomin',
    position:'last',
    onClickButton:function (){
      consultaLotes();
    }
	
  });
	
	
	var grid = $("#list"), headerRow, rowHight, resizeSpanHeight;
	// get the header row which contains
	headerRow = grid.closest("div.ui-jqgrid-view")
    .find("table.ui-jqgrid-htable>thead>tr.ui-jqgrid-labels");

	// increase the height of the resizing span
	resizeSpanHeight = 'height: ' + headerRow.height() +
    'px !important; cursor: col-resize;';
	headerRow.find("span.ui-jqgrid-resize").each(function () {
    	this.style.cssText = resizeSpanHeight;
	});

	// set position of the dive with the column header text to the middle
	rowHight = headerRow.height();
	headerRow.find("div.ui-jqgrid-sortable").each(function () {
    	var ts = $(this);
    	ts.css('top', (rowHight - ts.outerHeight()) / 2 + 'px');
	});
	//Muestra las barras de busqueda de los campos
	$("#list").jqGrid('filterToolbar'); 
}

function print_grid2(){
	var lastsel;
	$("#list").jqGrid({
		//Direccion donde se imprime el grid
		url:'inventario/backend.php?action=grid', 
		//Tipo de datos del grid 
		datatype: "json", 
		//Columnas que contiene el Grid
		colNames:['Id','Código Barras','Producto','Proveedor','Stock Cajas','Uds x Caja','Cajas x Palet','Palets Stock'], 
		//Nombres internos de las columnas y sus caracteristicas 
		colModel:[ 
			{name:'id_producto',index:'id_producto', width:30, align:"center",editable:false}, 
			{name:'ean',index:'ean', width:60, align:"center",editable:false},
			{name:'nombre',index:'nombre', width:205, align:"center",editable:false},
			{name:'proveedor',index:'proveedor', width:60, align:"center",editable:false},
			{name:'unidades',index:'unidades', width:30, align:"center",editable:false},
			{name:'udsxcaja',index:'udsxcaja', width:30, align:"center",editable:false},
			{name:'cajasxpalets',index:'cajasxpalets', width:30, align:"center",editable:false},
			{name:'unidades_palet',index:'unidades_palet', width:30, align:"center",editable:false}

		], 
		//Numero de filas que muestra el grid
		rowNum:99999, 
		//Altura del jqGrid
		height:280,
		//Anchura del jqGrid
		width:780,
		 //Paginacion
		pager: '#pager', 
		//Columna por la que se va a ordenar la primera vez
		sortname: 'id_producto', 
		autowidth: false,
		//Muestra la cantidad de datos que contiene y las que se estan mostrando
		viewrecords: true, 
		//Metodo de ordenacion
		sortorder: "asc", 
		//Titulo del jqGrid
		caption:"Gesti&oacute;n de Inventario",
		

		onSelectRow: function(id){ 
			if(id && id!==lastsel){ 
				jQuery('#list').jqGrid('restoreRow',lastsel); 
				jQuery('#list').jqGrid('editRow',id,true); 
				lastsel=id; 
			} 
		}, 
		 //Modifica el producto cuando cambias la cantidad y pierde el foco
		 afterSaveCell : function(rowid,cellname,value,iRow,iCol) { 

		 	modificarFila(value);
          },
		
		
		cellEdit : true,
		cellsubmit : 'remote',
		cellurl : 'inventario/backend.php',
		navigator: true, 
		pginput:true
	}); 
	//Desactiva los botones por defecto del jqGrid
	$("#list").jqGrid('navGrid','#pager',{pdf:false,add:false,edit:false,del:false,search:false,refresh:false}); 
	//Boton de exportar a excel
	$("#list").jqGrid('navButtonAdd','#pager',{
    caption:'Excel  ',
    title:'exportar',
    buttonicon:'ui-icon-newwin',
    position:'last',
    onClickButton:function (){
      exportExcel($("#list"));
    }
	
  });
  	//Boton de exportar a PDF
  	$("#list").jqGrid('navButtonAdd','#pager',{
    caption:'PDF',
    title:'exportar  ',
    buttonicon:'ui-icon-newwin',
    position:'last',
    onClickButton:function (){
      exportPDF($("#list"),'0');//El 0 indica que el pdf lo genera sin los lotes de cada producto
    }
	
  });
  	//Boton de exportar a pdf con los EAN
	$("#list").jqGrid('navButtonAdd','#pager',{
    caption:'PDF con lotes  ',
    title:'exportar',
    buttonicon:'ui-icon-newwin',
    position:'last',
    onClickButton:function (){
      exportPDF($("#list"),'1');//El 1 indica que el pdf lo genera con los lotes de cada producto
    }
	
  });
  	//Boton de consulta de lotes 
  $("#list").jqGrid('navButtonAdd','#pager',{
    caption:'Consulta Lotes',
    title:'Consulta Lotes',
    buttonicon:'ui-icon-circle-zoomin',
    position:'last',
    onClickButton:function (){
      consultaLotes();
    }
	
  });
	
	
	var grid = $("#list"), headerRow, rowHight, resizeSpanHeight;
	// get the header row which contains
	headerRow = grid.closest("div.ui-jqgrid-view")
    .find("table.ui-jqgrid-htable>thead>tr.ui-jqgrid-labels");

	// increase the height of the resizing span
	resizeSpanHeight = 'height: ' + headerRow.height() +
    'px !important; cursor: col-resize;';
	headerRow.find("span.ui-jqgrid-resize").each(function () {
    	this.style.cssText = resizeSpanHeight;
	});

	// set position of the dive with the column header text to the middle
	rowHight = headerRow.height();
	headerRow.find("div.ui-jqgrid-sortable").each(function () {
    	var ts = $(this);
    	ts.css('top', (rowHight - ts.outerHeight()) / 2 + 'px');
	});


	$("#list").jqGrid('filterToolbar'); 
}


/*function nuevoperfil(){	//Nueva mesa 
	$.get("inventario/backend.php?action=form", function(data){
		crear_modal(400,250,data);
		//$("#caracteristicas").multiselect();
	});
	return false;
}

function modificar(){ //Modificacion de las caracteristicas de la mesa
	var id_producto = $("#list").jqGrid('getGridParam','selrow'); 

	if( id_producto == null ){
		alert("Para modificar un registro debe seleccionarlo previamente."); 
	}else{
		$.get("inventario/backend.php?action=form&id_producto="+id_producto, function(data){
			crear_modal(400,250,data);
			//$("#caracteristicas").multiselect();
		});
	}
	return false;
}*/


function modificarFila(value){ //Modificacion de las caracteristicas de la mesa
	var id_producto = $("#list").jqGrid('getGridParam','selrow'); 

	if( id_producto == null ){
		alert("Para modificar un registro debe seleccionarlo previamente."); 
	}else{
		$.get("inventario/backend.php?action=modificarFila&id_producto="+id_producto+"&unidades="+value, function(data){
			//crear_modal(400,250,data);
			//$("#caracteristicas").multiselect();	
		$('#list').trigger("reloadGrid");

		});
	}
	return false;
}
/*
function borrar(){	//Borrado de la mesa 
	var id_producto = $("#list").jqGrid('getGridParam','selrow'); 

	if( id_producto == null ){
		alert("Para borrar un registro debe seleccionarlo previamente."); 
	}else{
		if(!confirm("¿Está seguro de que desea eliminar el registro seleccionado?"))
			exit(); 

		$.get("inventario/backend.php?action=borrar&id_producto="+id_producto, function(data){
			switch(data){
				case 'tiene_usuarios':{
					alert("No se puede borrar el producto ya que tiene datos asociados");
					break;
				}
				case 'OK':{
					$("#list").trigger("reloadGrid");
					break;
				}
			}
		});
	}
	return false;
}*/

function guardar(action){
	$.post("inventario/backend.php?action="+action,$("#form_datos").serialize(), function(data){
				switch(data){
					case 'nombre':{
						reiniciar_titulos();
						titulo_error(data);
						break;
					}				
					case 'OK':{
						reiniciar_titulos();
						$.modal.close();
						$("#list").trigger("reloadGrid");
						break;						
					}								
				}							

	});
}

function reiniciar_titulos(){
	contenedores = new Array('nombre');
	
	for(i=0;i<contenedores.length;i++){
		document.getElementById('cont_'+contenedores[i]).style.color= "#000000";
		document.getElementById('cont_'+contenedores[i]).style.fontWeight= "normal";
	}
}

function titulo_error(var_cont){
	reiniciar_titulos();
	document.getElementById('cont_'+var_cont).style.color= "red";
	document.getElementById('cont_'+var_cont).style.fontWeight= "bold";			
	document.getElementById('contenedor').innerHTML = "<font color='red'><b>Hay campos err&oacute;neos o sin cumplimentar</b></font>";
}


function volver()
{
	$.modal.close();
}

//Funcion que exporta los datos a Excel
function exportExcel($id){
  var keys=[], ii=0, rows="";
  var ids=$id.getDataIDs();  // Get All IDs
  var row=$id.getRowData(ids[0]);     // Get First row to get the labels
  for (var k in row) {
    keys[ii++]=k;    // capture col names
    rows=rows+k+"\t";     // output each Column as tab delimited
  }
  rows=rows+"\n";   // Output header with end of line
  for(i=0;i<ids.length;i++) {
    row=$id.getRowData(ids[i]); // get each row
    for(j=0;j<keys.length;j++) {
		rows=rows+row[keys[j]]+"\t"; // output each Row as tab delimited
		if (j+1==keys.length){
			//Cambia los valores del ean por una imagen del ean
			var imagen3 = "<img src=\"http://www.synapse.es/transporte/intranet/php-barcode/barcode.php?code="+row[keys[1]]+"&encoding=EAN&scale=1&mode=jpg\" width=\"\" height=\"70\" />"; 
				//var imagen4 = "<img src=\"/var/www/synapse.es/datos/web/transporte/intranet/php-barcode/barcode.php?code="+row[keys[j]]+"&encoding=EAN&scale=1&mode=png\" />" 
			///	rows=rows+imagen3+"\t";
			//var imagen = "<img src=\"php-barcode/barcode.php?code=012345678901&encoding=EAN&scale=4&mode=png\" />" 
			//document.location = imagen;
				//rows=rows+img1+"\t";
			}
	}
	//
	
    rows=rows+"\n";  // output each row with end of line
  }
  rows=rows+"\n";  // end of line at the end
  //Se llena la variable form con los datos del inventario
  var form = "<form name='csvexportform' action='inventario/csvExport.php' method='post'>";
  form = form + "<input type='hidden' name='csvBuffer' value='"+rows+"'>";
  form = form + "</form><script>document.csvexportform.submit();</sc"+"ript>";
  //Muestra el Excel de inventario
  OpenWindow=window.open('', '');
  OpenWindow.document.write(form);
  OpenWindow.document.close();
}



//Funcion que exporta los pdf
function exportPDF($id,lotes){
  var keys=[], ii=0, rows="";
  var ids=$id.getDataIDs();  // Get All IDs
  var row=$id.getRowData(ids[0]);     // Get First row to get the labels
  for (var k in row) {
    keys[ii++]=k;    // capture col names
    //rows=rows+k+"\t";     // output each Column as tab delimited
  }
  //rows=rows+"codigo barras \t";
  //rows=rows+"\n";   // Output header with end of line
  if(lotes==0){ //este if comprueba si el pdf lo imprime con lotes(1) o sin lotes(0)
  //Exporta el pdf sin lotes
  for(i=0;i<ids.length;i++) {
    row=$id.getRowData(ids[i]); // get each row
    for(j=0;j<keys.length;j++) {
		if (j>1 && j<8)
			rows=rows+row[keys[j]]+"\t"; // output each Row as tab delimited
		if (j==0 ){
			 if(row[keys[1]]>0){
				//var imagen2 = "<img src=\"../php-barcode/barcode.php?code="+row[keys[j]]+"&encoding=EAN&scale=1&mode=jpg\" />" 
				//var imagen = "<img src=\"genBarCode.php?codigo="+row[keys[j]]+"\" />" 
				//Cambia el valor numerico del ean por una imagen
				var imagen3 = "<img src=\"http://www.synapse.es/transporte/intranet/php-barcode/barcode.php?code="+row[keys[1]]+"&encoding=EAN&scale=1&mode=jpg\" width=\"\" height=\"50\" />"; 
				//var imagen4 = "<img src=\"/var/www/synapse.es/datos/web/transporte/intranet/php-barcode/barcode.php?code="+row[keys[j]]+"&encoding=EAN&scale=1&mode=png\" />" 
				
				rows=rows+imagen3+"\t";
			 } else {
				 rows=rows+"\t"
				 }
				 rows=rows+row[keys[j]]+"\t";
		}
	}
	
    rows=rows+"\n";  // output each row with end of line
  }
  
  rows=rows+"\n";  // end of line at the end
  
 	 var form = "<form name='csvexportform' action='inventario/pdfExportsin.php' method='post'>";
  }else{
	  //Exporta el pdf con lotes
	  for(i=0;i<ids.length;i++) {
    row=$id.getRowData(ids[i]); // get each row
    for(j=0;j<keys.length;j++) {
		if (j>1)
			rows=rows+row[keys[j]]+"\t"; // output each Row as tab delimited
		if (j==0 ){
			 if(row[keys[1]]>0){
				//var imagen2 = "<img src=\"../php-barcode/barcode.php?code="+row[keys[j]]+"&encoding=EAN&scale=1&mode=jpg\" />" 
				//var imagen = "<img src=\"genBarCode.php?codigo="+row[keys[j]]+"\" />" 
				//Cambia el valor numerico del ean por una imagen
				var imagen3 = "<img src=\"http://www.synapse.es/transporte/intranet/php-barcode/barcode.php?code="+row[keys[1]]+"&encoding=EAN&scale=1&mode=jpg\" width=\"\" height=\"50\" />"; 
				//var imagen4 = "<img src=\"/var/www/synapse.es/datos/web/transporte/intranet/php-barcode/barcode.php?code="+row[keys[j]]+"&encoding=EAN&scale=1&mode=png\" />" 
				
				rows=rows+imagen3+"\t";
			 } else {
				 rows=rows+"\t"
				 }
				 rows=rows+row[keys[j]]+"\t";
		}
	}
	
    rows=rows+"\n";  // output each row with end of line
  }
  
  rows=rows+"\n";  // end of line at the end
  
	var form = "<form name='csvexportform' action='inventario/pdfExport.php' method='post'>";
  }
  form = form + "<input type='hidden' name='csvBuffer' value='"+rows+"'>";
  form = form + "</form><script>document.csvexportform.submit();</sc"+"ript>";
  OpenWindow=window.open('', '');
  OpenWindow.document.write(form);
  OpenWindow.document.close();

}



function consultaLotes(){ //Muestra un modal con los lotes que tiene cada producto
	var id_producto = $("#list").jqGrid('getGridParam','selrow'); 

	if( id_producto == null ){
		alert("Para modificar un registro debe seleccionarlo previamente."); 
	}else{
		$.get("inventario/backend.php?action=modalLote&id_producto="+id_producto, function(data){
			crear_modal(700,420,data);
			//$("#caracteristicas").multiselect();
		});
	}
	return false;
}



